package com.kerrykidz.authority.service;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.kerrykidz.authority.dao.model.GblSecObjEntity;
import com.kerrykidz.authority.dao.model.SecRole2objEntity;
import com.kerrykidz.authority.dao.model.SecRoleEntity;
import com.rdp.framework.exception.RDPException;
import com.rdp.util.model.TreeModel;

/***
 * 
 * @ClassName: IAuRoleService 
 * @description: 角色配置
 * @author: wolf-yansl 
 * @date: 2014年9月17日 上午11:05:19 
 * @version: V1.0
 *
 */
public interface IAuRoleService {
	/**
	 * 获取  资源节点  及 子节点
	 *   递归循环查询数据
	 * @return
	 * @throws RDPException
	 * @date: 2014年9月17日
	 */
	public void findGblSecObjByPid(String pid,List<TreeModel> resultList)throws RDPException;
	/**
	 * 按照角色名称查询角色
	 * @param roleName
	 * @return
	 * @throws RDPException
	 * @date: 2014年11月6日
	 */
	public SecRoleEntity findByRoleName(String roleName)throws RDPException;
	
	/***
	 * 获取符合条件的role数据
	 * 	模糊角色名称    or  角色Id
	 * @param roleEntity
	 * @return
	 * @throws RDPException
	 * @date: 2014年9月17日
	 */
	public List<SecRoleEntity> findByRoleWhere(SecRoleEntity roleEntity)throws RDPException;
	public SecRoleEntity findByRoleId(SecRoleEntity roleEntity)throws RDPException;
	
	/**
	 *   保存  角色
	 * @param roleEntity
	 * @throws RDPException
	 * @date: 2014年9月17日
	 */
	public void saveRole(SecRoleEntity roleEntity,List<SecRole2objEntity> secObj)throws RDPException;
	
	/**
	 *   保存 角色 和 授权关联
	 * @param roleObjList
	 * @throws RDPException
	 * @date: 2014年9月17日
	 
	public void saveRoleObj(List<SecRole2objEntity> roleObjList)throws RDPException;
	*/
	/**
	 * 删除 角色关联授权数据
	 * @param fkRoleId
	 * @throws RDPException
	 * @date: 2014年9月17日
	 */
	public void removeRoleObj(String fkRoleId)throws RDPException;
	
	/***
	 * 获取所有关联角色授权
	 * @param fkRoleId
	 * @return
	 * @throws RDPException
	 * @date: 2014年9月17日
	 */
	public List<SecRole2objEntity> findByIdRoleObj(String fkRoleId)throws RDPException;
	
	/***
	 * 修改角色
	 * @param roleEntity
	 * @throws RDPException
	 * @date: 2014年9月17日
	 */
	public SecRoleEntity updateRole(SecRoleEntity roleEntity,List<SecRole2objEntity> secObj)throws RDPException;
	
	/**
	 * 删除角色
	 * @param roleEntity
	 * @throws RDPException
	 * @date: 2014年9月17日
	 */
	public void removeRole(SecRoleEntity roleEntity)throws RDPException;
	
	
}
